草庐IT

Javascript if条件为 bool 值

全部标签

javascript - 如何理解 "if ( obj.length === +obj.length )"Javascript条件语句?

我遇到了一个我很难理解的条件语句。它看起来像(请注意右侧的+-sign):obj.length===+obj.length。这个条件和它的目的/语法能解释一下吗?查看该声明(在不知情的情况下)会让人觉得它是某种肮脏的hack,但我几乎可以肯定underscore.js是一个设计良好的库,因此必须有一个更好的解释。背景我发现此语句用于underscore.js库(underscore.jsannotatedsource)的某些函数中。我的猜测是这个条件语句与测试变量obj是否为Array类型有某种关系?(但我完全不确定)。我已尝试使用此代码对此进行测试。varmyArray=[1,2,3

javascript - Lodash - 从 Map 方法有条件地返回对象

我想遍历一个数组,运行一个计算,如果结果的条件为真,则返回一个新对象。_.filter(...)在这里不起作用,因为迭代器函数必须返回true或false。_.map(people,function(person){varage=calculateAge(person.birthDate);if(age>50){return{person:person,age:age};}});我已经尝试搜索所有内容,包括文档,但我还没有找到一种很好的方法。 最佳答案 听起来你可能想要reduce而不是map:varnewArray=_.reduc

javascript - 为什么即使条件为真也会执行 else block ?

几分钟前,我在Codeacademy上练习了一些JavaScript,我发现了一些令人困惑的东西。这是代码:varfriends={};friends.bill={firstName:"Bill",lastName:"Gates",number:"(206)555-5555",address:['OneMicrosoftWay','Redmond','WA','98052']};friends.steve={firstName:"Steve",lastName:"Jobs",number:"(408)555-5555",address:['1InfiniteLoop','Cuperti

javascript - 如何重复 ajax 请求,直到满足 RxJS Observable 的条件?

我正在尝试重复请求,直到响应包含使用RxJS的数据,此时我想调用成功(或失败)处理程序,但我在使用RxJS时遇到了麻烦。这是我目前的做法://...redux-observableactionobservable.mergeMap(()=>fetchData().repeatWhen(response=>response.takeWhile(({data})=>!data.length).of(response))).map(successFunction).catch(failureFunction);免责声明:我对RxJS很陌生.... 最佳答案

javascript - 条件或针对许多字符串的更短语法

我有这样的东西:if(this.selectedItem.label=="str1"||this.selectedItem.label=="str2"||this.selectedItem.label=="str3"||this.selectedItem.label=="str4"){}我想知道是否存在更短的语法来仅使用“this.selectedItem.label”。 最佳答案 可以是数组和indexOf功能?if(["str1","str2","str3","str4"].indexOf(this.selectedItem.l

javascript - 有什么理由用 !! 做 bool 转换吗?而不是 JavaScript 中的 Boolean()?

我知道Boolean()、String()和Number()转换,以及''+...、!!...和+...转换方法。我想知道是否有任何理由不使用函数构造函数? 最佳答案 通常不鼓励使用!!,因为对于那些没有见过它的人来说,它的实际用途是什么并不清楚。也就是说,它不到Boolean()字符的三分之一。此外,我不确定在Javascript中实际需要多久转换一次bool值,因为它通常是隐式转换,因为Javascript是弱类型的。 关于javascript-有什么理由用!!做bool转换吗?而不

javascript - 奇怪的数据属性 bool 问题

我有一个标题的实时点击事件,它有一个箭头在打开和关闭它的内容时向上/向下翻转。最奇怪的事情发生在!后跟一个变量——它应该将它从true->false翻转,反之亦然。基本上它根本不起作用,它会变为false并停留在那里...查看fiddle以了解我的意思。为了简洁起见,我删除了很多代码。DemoCode$(document).on('click','.regimenHeader',function(){var_state=$(this).attr('data-state');if(_state==='true'){//dostuff}else{//dostuff}//Thisiswher

javascript - 为什么 `1 && true` 得到一个 bool 值 `true` ,而 `0 && true` 得到一个数字 `0` ?

为什么1&&true得到一个bool值true,而0&&true得到一个数字0?我在Chrome控制台和Firebug中对其进行了测试。 最佳答案 因为expr1&&expr2如果为假则返回expr1,否则返回expr2。 关于javascript-为什么`1&&true`得到一个bool值`true`,而`0&&true`得到一个数字`0`?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/ques

javascript - Javascript 中的这个 if 条件有什么问题?

这个IF条件有什么问题?当我将EEID值设为123456时,它不应出现这种情况。但我看到它来了。有人可以让我知道我做错了什么吗?if((EEID.value.length!=6)||(EEID.value.length!=11)){alert(EEID.value.length);//Thisshowsthatthevaluelength=6alert("YourMemberIDmustbea6digitor11digitnumber.");EEID.focus();returnfalse;} 最佳答案 满足条件是因为EEID.va

javascript - 我想模仿 javascript 正则表达式中的条件

这就是我目前所拥有的...varregex_string="s(at)?u(?(1)r|n)day"console.log("Before:"+regex_string)varregex_string=regex_string.replace(/\(\?\((\d)\)(.+?\|)(.+?)\)/g,'((?!\\$1)$2\\$1$3)')console.log("After:"+regex_string)varrex=newRegExp(regex_string)vararr="thursdaytuesdaythuesdaytursdaysaturdaysundaysurdays